從agent工作流建立完成以後,我都是使用另一個語言模型來修正主要agent所輸出的內容,也就是會判斷輸出的內容有沒有圖片的網址,來將內容格式化:
{
"output":"",
"address":"",
"preview_address":""
}
但是不知道是我的提示詞下得不好,還是這個做法本身就不夠穩定,因此有時候會有輸出時語言模型不遵照這個格式來輸出,所以我打算也使用js來格式化這些內容,保證整體輸出的穩定性。
首先因為我真的不太熟悉js,所以我詢問了chatGPT,得到了這樣的解答:
總之這個方法是可行的,所以我們就先用function節點來測試看看:
function parseLinks(text) {
const urlRegex = /(https?:\/\/[^\s]+)/g;
const urls = text.match(urlRegex) || [];
let address = null;
let preview_address = null;
let normalText = text;
for (const url of urls) {
if (url.includes("supabase.co/storage")) {
address = url;
normalText = normalText.replace(url, "").trim();
} else if (url.includes("tinify.com/output")) {
preview_address = url;
normalText = normalText.replace(url, "").trim();
}
}
return {
output: normalText,
address,
preview_address
};
}
return items.map(item => {
const text = $input.first().json.output || "";
const result = parseLinks(text);
return {
json: result
};
});
像這樣貼上程式碼後,再讓agent生成一張圖片試試看:
可以看到輸出的結果一樣是順利的。
這樣就完成了修改,整個工作流也會變更穩定。